package proyectoX.src.armas;

import java.awt.Point;

import proyectoX.src.aplicacion.Nivel;
import proyectoX.src.entidades.Principal;
import proyectoX.src.municiones.MunicionCongelante;
import proyectoX.src.municiones.MunicionEscudo;

/**
 * Arma utilizada por la nave Grande para congelar a todos los enemigos en pantalla.
 *
 */
public class BombaCongelante extends arma {
	
	protected MunicionCongelante escudoActivo;
	protected boolean escudoActivadoActualmente;
    
	/**
	 * Crea un arma con el nivel pasado por parámetro.
	 * @param n Nivel actual.
	 */
	public BombaCongelante(Nivel n) {
		super(2, 0, n, 5000);
		escudoActivadoActualmente = false;
	}

  /**
   * Desactiva el arma quitando las municion de la misma de la pantalla
   */
	public void desactivar() {
		escudoActivadoActualmente = false;
		nivel.DescongelarCongelarTodo();
		nivel.quitarMunicion(escudoActivo);		
	}

/**
 * Consulta que permite saber si el arma esta activa o no.
 * @return Verdadero si el arma se encuentra activada y falso en caso contrario 
 */
	public boolean getEscudoActivadoActualmente() {
		return escudoActivadoActualmente;
	}

	/**
	 * Crea una bomba Congelante en la posicion pasada por parametro.
	 * 
	 * @param location punto donde se coloca la bomba
	 */
	public void disparar(Point location) {
		Principal naveAux = nivel.obtenerNavePrincipal();
		escudoActivo = new MunicionCongelante(this,nivel);

		//posiciones correspondientes centradas sobre la nave
		int posX = (location.x+naveAux.getWidth()/2)-escudoActivo.getWidth()/2;
		int posY = (location.y+naveAux.getHeight()/2)-escudoActivo.getHeight()/2;

		escudoActivo.setLocation(posX, posY);
		escudoActivo.setVisible(true);		
		escudoActivadoActualmente = true;		
		nivel.agregarMunicion(escudoActivo);
				
	}
}
